The present invention relates to a computer system, a central unit and a program execution method which make it difficult to illegally execute a program even when a malicious third party reverse-analyzed the contents of the executed program.
In recent years, with the spread of an “always-on” connection environment such as a broadband internet connection, techniques for ensuring security against illegal execution and update of programs by malicious third parties have attracted attention. In particular, personal computers (hereinafter just referred to as the “PC”) have an open architecture, and programs to be executed on the PC are written as an operating system (hereinafter just referred to as the “OS”) or a program code in a form complying with a processor. Therefore, since any person can basically confirm and understand the contents of the main memory on the PC, there is the problem that it is difficult to ensure security.
In order to solve the problem, the prior art uses the technique of making it difficult to read a program to be executed or the technique of securing a program to be executed, and, for example, takes countermeasures such as making the reverse analysis difficult by obfuscating the logic of the program, encrypting the program, or executing the program while actively writing the program on the memory (see Japanese Patent Application Laid-Open No. 11-232103/1999).
Moreover, Japanese Patent Application Laid-Open No. 8-16385/1996 discloses a software analysis protection method in which software for use in an application is divided and stored in a central unit and a terminal unit, and a load module to be transmitted to the terminal unit is selected by random number control. In this software analysis protection method, all the software programs are not simultaneously present in the terminal unit, and reverse analysis results obtained by executing the same processing are different. In other words, by embedding an appropriate sub-program into a program written on the memory of the terminal unit and executing the program, even when reverse analysis is successfully completed, the overall program cannot be understood. Further, the person who executed reverse analysis cannot readily execute the program.